package Jackson.exercicio09.com.Usuario;

import ivan.home.com.conta.Conta;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.IOException;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.NoSuchFileException;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.StandardOpenOption;
import java.util.ArrayList;
import java.util.Date;

public class RepositorioUsuarioLogArquivo implements IRepositorioUsuarioLog{
	
	private File arquivo = new File("arquivos/arquivoLog.txt");
	private Path path = Paths.get("arquivos/arquivoLog.txt");
	private Charset utf8 = StandardCharsets.UTF_8;

	public RepositorioUsuarioLogArquivo() throws IOException{
		if(!arquivo.exists()){
			BufferedWriter instalar = Files.newBufferedWriter(path, utf8);
		}
	}

	@Override
	public void adicionarDadosLog(Usuario usuario) throws IOException {
		BufferedWriter adicionar = Files.newBufferedWriter(path, utf8, StandardOpenOption.APPEND);
		adicionar.write(usuario.getCodigo()+";"+usuario.getNome()+";"+usuario.getTipoUsuario()+";"+usuario.getDataStrig()+"\r\n");
		adicionar.flush();
		adicionar.close();
	}

	@Override
	public void alterarDadosLog(Usuario usuario) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public ArrayList<Usuario> listarDadosLog() throws IOException, NoSuchFileException {
		ArrayList<Usuario> usuarios = new ArrayList<Usuario>();
		String linha = null;
		String [] nomes;
		try{
			BufferedReader ler = Files.newBufferedReader(path, utf8);
			while((linha = ler.readLine()) != null){
				nomes = linha.split(";");
				Usuario usuario = new Usuario(Integer.parseInt(nomes[0]),nomes[1],nomes[2]);
				usuario.setDataString(nomes[3]);
				usuarios.add(usuario);
			}
		}catch(NoSuchFileException e){
			System.err.println("Arquivo não encontrado!");
		}
		return usuarios;
	}

	@Override
	public void deletarDadosLog(Usuario usuario) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void deleteAllDadosLog() throws IOException {
		Files.delete(path);
		
	}

}
